package com.parking.order.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 添加出场信息Dto
 * */
@Data
public class AddOutInfoDto {
    /**
     * 出入场信息Id
     * */
    private Integer entranceInfoId;
    /**
     * 用户信息Id
     * */
    private Integer userInfoId;
    /**
     * 用户名称
     * */
    private String userInfoName;
    /**
     * 物业信息Id
     * */
    private Integer certifiedInfoId;
    /**
     * 物业名称
     * */
    private String certifiedInfoName;
    /**
     * 物业电话
     * */
    private String certifiedInfoTel;
    /**
     * 物业地址
     * */
    private String certifiedInfoAddress;
    /**
     * 车位信息Id
     * */
    private Integer stallInfoId;
    /**
     * 入场车牌号
     * */
    private String entranceInfoPlate;
    /**
     * 入场车位号
     * */
    private String stallInfo;
    /**
     * 车位类型 普通车位 充电车位
     * */
    private String stallType;
    /**
     * 入场时间
     * */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime entranceEnterTime;
    /**
     * 入场图片
     * */
    private String entranceImg;
    /**
     * 出场时间
     * */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime entranceOutTime;
    /**
     * 订单Id
     */
    private Integer orderInfoId;
    /**
     * 订单编号
     */
    private String orderInfoNum;

    /**
     * 额外信息 是否超时
     * */
    private String extraInfo;

    /**
     * 构造函数
     * entranceInfoId 出入场信息Id
     * userInfoId     用户信息Id
     * userInfoName   用户姓名
     * certifiedInfoId 物业信息Id
     * certifiedInfoName 物业名称
     * certifiedInfoTel  物业电话
     * certifiedInfoAddress 物业地址
     * stallInfoId        车位信息Id
     * entranceInfoPlate  车牌号
     * stallInfo          车位号
     * stallType          车位类型 普通车位 充电车位
     * entranceEnterTime  入场时间
     * entranceImg        入场照片
     * entranceOutTime    出场时间
     * orderInfoId        订单Id
     * orderInfoNum       订单编号
     * */
    public AddOutInfoDto(Integer entranceInfoId, Integer userInfoId, String userInfoName, Integer certifiedInfoId, String certifiedInfoName, String certifiedInfoTel, String certifiedInfoAddress, Integer stallInfoId, String entranceInfoPlate, String stallInfo, String stallType, LocalDateTime entranceEnterTime, String entranceImg, LocalDateTime entranceOutTime, Integer orderInfoId, String orderInfoNum) {
        this.entranceInfoId = entranceInfoId;
        this.userInfoId = userInfoId;
        this.userInfoName = userInfoName;
        this.certifiedInfoId = certifiedInfoId;
        this.certifiedInfoName = certifiedInfoName;
        this.certifiedInfoTel = certifiedInfoTel;
        this.certifiedInfoAddress = certifiedInfoAddress;
        this.stallInfoId = stallInfoId;
        this.entranceInfoPlate = entranceInfoPlate;
        this.stallInfo = stallInfo;
        this.stallType = stallType;
        this.entranceEnterTime = entranceEnterTime;
        this.entranceImg = entranceImg;
        this.entranceOutTime = entranceOutTime;
        this.orderInfoId = orderInfoId;
        this.orderInfoNum = orderInfoNum;
    }
}
